package com.mi.db;

import java.util.Properties;

import javax.sql.DataSource;

import org.apache.commons.dbcp2.BasicDataSourceFactory;

import com.mi.utils.MyUtils;

/**
 * 单例模式实现数据源
 * @author Administrator
 */
public class DBCPDateSourse {

	// 1. 创建一个单例模式的静态的变量
	private static DataSource ds = null;
	
	// 2.构造函数私有化
	private DBCPDateSourse() {}

	// 3.提供静态的访问入口
	public static DataSource getDataSource() {
		// 是否第一次访问，并进行初始化
		if(ds == null) {
			try {
				// 使用properties读取配置信息
				Properties prop = new Properties();
				// 加载配置信息
				prop.load(DBCPDateSourse.class.getClassLoader().getResourceAsStream("db.properties"));
				ds = BasicDataSourceFactory.createDataSource(prop);
			} catch (Exception e) {
				// dbcp数据库初始化异常
				MyUtils.logRootLogger.info("dbcp数据库初始化异常："+e.getMessage());
				e.printStackTrace();
			}
		}
		return ds;
	}
}
